﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Noris.LCS.AIDCCodes.Common
{
    #region interface IEncoderEngine : interface for engine for encoding specified code type.
    /// <summary>
    /// IEncoderEngine : interface for engine for encoding specified code type.
    /// </summary>
    internal interface IEncoderEngine
    {
        /// <summary>
        /// List of CodeType, for which is this encoder usable.
        /// </summary>
        IEnumerable<CodeType> EncoderForTypes { get; }
        /// <summary>
        /// Encode content with CodeType
        /// </summary>
        /// <param name="content"></param>
        /// <param name="codeType"></param>
        void Encode(string content, CodeType codeType);
        /// <summary>
        /// Text label for code last encoded.
        /// Contains individual characters and its positions on matrix.
        /// Can be null.
        /// </summary>
        CodeLabel Label { get; }
        /// <summary>
        /// Matrix of code for Content
        /// </summary>
        CodeMatrix Matrix { get; }
    }
    #endregion
    #region Constants
    /// <summary>
    /// Set of common constants
    /// </summary>
    internal class Constants
    {
        /// <summary>
        /// QRcode
        /// </summary>
        public const string QR_CODE = "QRcode";
        /// <summary>
        /// Barcode
        /// </summary>
        public const string BAR_CODE = "Barcode";
    }
    #endregion
}
